package teacher

import (
	"code.oldboyedu.com/studygo/ginStsMgr/common"
	"code.oldboyedu.com/studygo/ginStsMgr/dao/init_mysql"
	"code.oldboyedu.com/studygo/ginStsMgr/model"
)

/*
	老师的sql增删改查
*/
func CheckName(name string) int {
	var names model.Teacher
	init_mysql.Db.Select("id").Where("name=?", name).First(&names)
	if names.ID > 0 {
		return common.TeaNameExist
	}
	return common.SUCCESS

}
func CheckId(id int, data *model.Teacher) int {
	err := init_mysql.Db.Where("id=?", id).First(&data).Error
	if err != nil {
		return common.ERROR
	}
	return common.SUCCESS
}
func CreateTeacher(data *model.Teacher) int {
	err := init_mysql.Db.Create(&data).Error
	if err != nil {
		return common.CreateTeacherFailed
	}
	return common.SUCCESS
}

// ViewSTId 查看单个老师对应的学生信息 使用了Preload预加载
func ViewSTId(id int, data *model.Teacher) int {
	err := init_mysql.Db.Where("id=?", id).Preload("Student").Preload("Class").Find(&data).Error
	if err != nil {
		return common.ViesTeaIDFailed
	}
	return common.SUCCESS
}

//ViewST 查看所有老师对应的学生信息
func ViewST(pagesize, pagenum int) ([]model.Teacher, int) {
	var teaList []model.Teacher
	err := init_mysql.Db.Limit(pagesize).Offset((pagenum - 1) * pagesize).Preload("Student").Preload("Class").Find(&teaList).Error
	if err != nil {
		return nil, common.ViesTeaFailed
	}
	return teaList, common.SUCCESS
}

//删除单个老师信息
func DelST(id int, data *model.Teacher) int {
	err := init_mysql.Db.Where("id=?", id).Delete(&data).Error
	if err != nil {
		return common.DelTeaFailed
	}
	return common.SUCCESS
}

//更新老师信息
func Update(id int, data *model.Teacher) int {
	var teaList model.Teacher
	var maps = make(map[string]interface{})
	maps["name"] = data.Name
	maps["age"] = data.Age
	err := init_mysql.Db.Model(&teaList).Where("id=?", id).Updates(maps).Error
	if err != nil {
		return common.UpdateTeaFailed
	}
	return common.SUCCESS
}
